import request from '@/config/axios'

// 生产计划-餐谱数据管理 VO
export interface RecipeVO {
  id: number // 唯一标识符
  recipeCode: string // 餐谱名称
  recipeName: string // 餐谱编号
  airlineId: number // 所属航空公司
  airlineType: string // 航线类型
  cabinClass: string // 舱位等级
  mealService: string // 餐食类别
  mealSet: string // 对应套餐
  isActive: boolean // 是否启用
  startDate: Date // 有效期开始
  endDate: Date // 有效期结束
  remarks: string // 备注
  recipeDetailRespVOs: RecipeDetailVO[]
}

interface RecipeDetailVO {
  id?: number // 唯一标识（可选，新增时可能不存在）
  recipeId?: number // 餐谱ID（关联当前餐谱的id）
  receipeMealId?: number // 菜品ID（关联菜品表的id）
  tablewareId?: number // 餐具ID（关联餐具表的id）
  ratio?: number // 配餐比例（可选）
}

const cache = new Map()

// 生产计划-餐谱数据管理 API
export const RecipeApi = {
  // 查询生产计划-餐谱数据管理分页
  getRecipePage: async (params: any) => {
    return await request.get({ url: `/pplan/recipe/page`, params })
  },
  // 查询生产计划-餐谱数据全部
  getRecipeSimpleList: async () => {
    if (cache.has('pplan_recipe_simple_list')) {
      return cache.get('pplan_recipe_simple_list')
    }
    const res = await request.get({ url: `/pplan/recipe/simple-list` })
    cache.set('pplan_recipe_simple_list', res)
    return res
    // return await request.get({ url: `/pplan/recipe/simple-list` })
  },

  // 查询生产计划-餐谱数据管理详情
  getRecipe: async (id: number) => {
    return await request.get({ url: `/pplan/recipe/get?id=` + id })
  },

  // 新增生产计划-餐谱数据管理
  createRecipe: async (data: RecipeVO) => {
    cache.clear()
    return await request.post({ url: `/pplan/recipe/create`, data })
  },

  // 修改生产计划-餐谱数据管理
  updateRecipe: async (data: RecipeVO) => {
    cache.clear()
    return await request.put({ url: `/pplan/recipe/update`, data })
  },

  // 删除生产计划-餐谱数据管理
  deleteRecipe: async (id: number) => {
    cache.clear()
    return await request.delete({ url: `/pplan/recipe/delete?id=` + id })
  },

  // 导出生产计划-餐谱数据管理 Excel
  exportRecipe: async (params) => {
    return await request.download({ url: `/pplan/recipe/export-excel`, params })
  }
}
